// import io from 'socket.io-client'
// // 监听事件的事件名称
// import {eventNames} from '../../common/socketEvent'
//
// import store from '../store'
// import router from '../router'

export default (Vue, option = {}) => {
  // console.log('开始连接 ' + `ws://${option.ip}:${option.port}/webSocket/001`)
  // let socketId = ''
  let websocket = null

  // 判断当前浏览器是否支持WebSocket
  if ('WebSocket' in window) {
    // 连接WebSocket节点
    websocket = new WebSocket(`ws://${option.ip}:${option.port}/webSocket/001`)
  } else {
    alert('Not support websocket')
  }

  // 连接成功建立的回调方法
  websocket.onopen = function (event) {
    console.log(`webSocket：${this.url}连接成功`)
    // let _userInfo = JSON.parse(sessionStorage.getItem('userInfo'))
    // console.log(_userInfo)
    // if (_userInfo) {
    // let value = {socketId: socketId}

    // let key = `${_userInfo.DWBM}-${_userInfo.GH}`

    // await Vue.prototype.$api.post.setUserInfo(_userInfo)
    // let res = await Vue.prototype.$api.post.updateUserSocketId({key, value})

    // store.commit('setUserInfo', _userInfo)

    // console.log('已登陆', res)
    // }
    Vue.prototype.$eventBus.$emit('inited')
  }
  // 连接发生错误的回调方法
  websocket.onerror = function (event) {
    console.error(event)
  }

  // 接收到消息的回调方法
  websocket.onmessage = function (event) {
    console.log(event)
  }

  // 连接关闭的回调方法
  websocket.onclose = function () {
    console.log('websocket已关闭')
  }

  // 监听窗口关闭事件，当窗口关闭时，主动去关闭websocket连接，防止连接还没断开就关闭窗口，server端会抛异常。
  window.onbeforeunload = function () {
    websocket.close()
  }
  Vue.prototype.$socket = websocket
}

// export default (Vue, option = {}) => {
//   debugger
//   console.log('开始连接 ' + `ws://${option.ip}:${option.port}/webSocket/001`)
//   let socket = io(`http://${option.ip}:${option.port}/webSocket/001`)
//   let socketId = ''
//   socket.on('connect', async () => {
//     socketId = socket.id
//     console.log(socketId + ' 已连接 ' + `http://${option.ip}:${option.port}`)
//
//     let _userInfo = JSON.parse(sessionStorage.getItem('userInfo'))
//     if (_userInfo) {
//       let value = { socketId: socketId }
//
//       let key = `${_userInfo.DWBM}-${_userInfo.GH}`
//
//       await Vue.prototype.$api.post.setUserInfo(_userInfo)
//       let res = await Vue.prototype.$api.post.updateUserSocketId({ key, value })
//
//       store.commit('setUserInfo', _userInfo)
//
//       console.log('已登陆', res)
//     }
//     let _adminUserInfo = JSON.parse(sessionStorage.getItem('adminUserInfo'))
//     if (_adminUserInfo) {
//       await Vue.prototype.$api.post.setAdminUserInfo(_adminUserInfo)
//       store.commit('setAdminUserInfo', _adminUserInfo)
//     }
//     Vue.prototype.$eventBus.$emit('inited')
//
//     for (let eventName in eventNames) {
//       socket.on(eventName, (data) => {
//         Vue.prototype.$eventBus.$emit(eventName, data)
//       })
//     }
//
//     socket.on('loginOther', async () => {
//       Vue.prototype.$alert('您的账户已在别处登录，请重新登录！', '提示')
//       await socket.logout()
//     })
//
//     socket.login = async (params) => {
//       let userInfo = await Vue.prototype.$api.post.login(params)
//
//       if (userInfo.errno) return Vue.prototype.$alert('登录失败', '错误', {})
//
//       let value = { socketId: socketId }
//
//       let key = `${userInfo.data.DWBM}-${userInfo.data.GH}`
//
//       let res = await Vue.prototype.$api.post.updateUserSocketId({ key, value })
//
//       console.log('hmset结果', res)
//
//       return userInfo
//     }
//     socket.logout = async () => {
//       try {
//         let res = await Vue.prototype.$api.post.logout()
//
//         if (res.errno) return
//         sessionStorage.removeItem('userInfo')
//         Vue.prototype.$api.cancelAll()
//         router.replace({ path: '/Login', query: { r: Date.now() } })
//       } catch (e) {
//
//       }
//     }
//
//     for (let emitEventName of _emitEventNames) {
//       socket[emitEventName] = (params) => {
//         return new Promise((resolve, reject) => {
//           socket.emit(emitEventName, params, (data) => {
//             resolve(data)
//           })
//         })
//       }
//     }
//   })
//   socket.on('disconnect', () => {
//     console.log(socketId + ' 已断开')
//   })
//   Vue.prototype.$socket = socket
// }
//
// // 发送emit事件的事件名称
// const _emitEventNames = []
